package cn.itcalvin.sncoal.cth.mapper.main;

import cn.itcalvin.sncoal.cth.domain.InfoPfSystem;
import cn.itcalvin.sncoal.cth.pojo.response.analyse.*;
import cn.itcalvin.tk.BaseMapper;
import cn.itcalvin.tk.InsertListExtMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.special.InsertListMapper;

import java.util.List;

@Mapper
public interface InfoPfSystemMapper extends BaseMapper<InfoPfSystem>,
        InsertListMapper<InfoPfSystem>, InsertListExtMapper<InfoPfSystem> {

    /**
     * 获取某个矿井的每个系统的总分
     * @param id 矿井ID
     * @return
     */
    List<RespOneMineAllSystem> oneMineAllSystem(@Param("id") Long id);


    /**
     * 矿井待处理的消息数量
     * @param mineId
     * @return
     */
    Integer getHandleByMineId(@Param("mineId") Long mineId);

    /**
     * 矿井待处理的消息数量
     * @return
     */
    Integer getHandle();

    /**
     * 矿井最后一次评分
     * @return
     */
    List<RespMineAllSystemLast> mineAllSystemLast();

    /**
     * 矿井某系统的得分趋势
     * @param id
     * @return
     */
    List<RespMineOneSystem> mineOneSystem(@Param("id") Long id);

    /**
     * 矿井某系统的得分趋势
     * @return
     */
    List<RespMineDateScore> mineDateScore();

    /**
     * 获取数据概览-- 最后一次的总分
     * @return
     */
    List<RespAnalyseCardItem> getStatData();

    /**
     * 指标得分详情
     * @return
     */
    List<RespStatDataCardTemp> getStatDataCard();

    /**
     * 指标得分详情
     * @param pfIdList
     * @param zbId
     * @return
     */
    List<RespAnalyseCardDetailsItem> getCardDetails(@Param("pfIdList")  List<Long> pfIdList,
                                                    @Param("zbId") Long zbId);

    /**
     * 指标得分详情
     * @param systemZbDetailsId
     * @return
     */
    List<RespMineDateScore> oneZbDetails(@Param("systemZbDetailsId") Long systemZbDetailsId);
}